package com.gxp.system.service;

import com.gxp.system.domain.ZknjService;
import com.gxp.system.domain.dto.ServicesDto;

import java.util.List;

/**
 * 服务2Service接口
 * 
 * @author zh
 * @date 2024-07-18
 */
public interface IZknjServiceService 
{
    /**
     * 查询服务2
     * 
     * @param serId 服务2主键
     * @return 服务2
     */
    public ZknjService selectZknjServiceBySerId(Long serId);

    /**
     * 查询服务2列表
     * 
     * @param zknjService 服务2
     * @return 服务2集合
     */
    public List<ZknjService> selectZknjServiceList(ZknjService zknjService);

    /**
     * 新增服务2
     * 
     * @param zknjService 服务2
     * @return 结果
     */
    public int insertZknjService(ZknjService zknjService);

    /**
     * 修改服务2
     * 
     * @param zknjService 服务2
     * @return 结果
     */
    public int updateZknjService(ZknjService zknjService);

    /**
     * 批量删除服务2
     * 
     * @param serIds 需要删除的服务2主键集合
     * @return 结果
     */
    public int deleteZknjServiceBySerIds(String serIds);

    /**
     * 删除服务2信息
     * 
     * @param serId 服务2主键
     * @return 结果
     */
    public int deleteZknjServiceBySerId(Long serId);

    /**
     * 对象条件查询（填充Instrument、serviceType）
     * @param zknjService
     * @return
     */
    List<ZknjService> selectZknjServices(ZknjService zknjService);

    /**
     * 服务状态修改
     * @param zknjService
     * @return
     */
    int changeStatus(ZknjService zknjService);

    /**
     * 根据仪器ID获取服务
     * @param instIds
     * @return
     */
    List<ZknjService> selectByInstIds(String[] instIds);

    /**
     * 根方法Id获取服务和方法信息
     * @param modIds
     * @return
     */
    ServicesDto selectZknjServiceAndMethodByModIds(String modIds);

    /**
     * 根据项目申请查询服务列表
     */
    List<ZknjService> selectZknjServicesByReqId(Long reqId, boolean isGiveUserPermissionFlag);

    /**
     * 服务审核
     * @param service
     * @return
     */
    int approve(ZknjService service);
}
